iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
自我挑戰組

Practice again& again.系列 第 9

Android - 定義 String Resources

  • 分享至 

  • xImage
  •  

Android - String Resources 字串資源的定義及使用

開啟 strings.xml

  • 在 Android Studio 開啟先前章節建立的 App。
  • 將目錄列表切換至 Android 檢視模式(如下圖紅框處)。
  • 每個專案皆包含一個預設的 strings 檔案,於路徑 專案根目錄/app/src/main/res/values/strings.xml (如下圖藍底處)開啟 strings.xml
    image01.png

定義字串

  • strings.xml 中,每個字串皆為 <string> 元素,並以屬性 name 作為該字串的 resource ID,用以取得該字串文字。語法如下:

    <string name="字串資源ID">文字內容</string>
    
  • <string name="app_name"> 為使用 Android 範本建立專案時預設的字串資源。新增字串如下:

    <resources>
        <string name="app_name">My Application</string>
    
        <!--=================== 新增 =======================-->
        <string name="hello_world">Hello world!</string>
        <!--===============================================-->
    
    </resources>
    

使用字串資源

  • Layout resources

    • 在專案中的任何 XML file 內,使用 @string/字串資源ID 取得字串 reference 。在執行時期會被編譯為字串文字,顯示於畫面上。

    • activity_main.xml 中的 <TextView android:text > 屬性,更改為字串 reference:

      <TextView
          ...
          android:text="@string/hello_world"
          ...
          />
      
    • 預覽字串文字內容
      img02

  • 程式

    • getString(R.string.字串ID) 在程式中呼叫字串資源:以上篇文章 MainActivity.kt 中的 UI宣告 為例:
      override fun onCreate(savedInstanceState: Bundle?) {
          super.onCreate(savedInstanceState)
          setContentView(R.layout.activity_main)
          setContent {
              Box(
                  modifier = Modifier
                      .fillMaxSize(),
                  contentAlignment = Alignment.Center
              ) {
                  Text(
                      //=========== 使用字串資源 ===========
                      text = getString(R.string.hello_world)
                      //===================================
                  )
              }
          }
      }
      

上一篇
Android UI - Jetpack Compose (2023 import 版本)
下一篇
Android - String Resources 特殊字元
系列文
Practice again& again.30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言